import { useUserStore } from '@/stores'
import axios from 'axios'
import router from '@/router'
import { ElMessage } from 'element-plus'

// const baseURL = 'http://localhost:8080'

const request = axios.create({
  // baseURL,
  timeout: 100000,
})

request.interceptors.request.use(
  (config) => {
    const token = useUserStore().userInfo.token
    // 如果 token 存在就设置在请求头
    if (token) {
      config.headers.Authorization = token
    }
    return config
  },
  (err) => Promise.reject(err),
)

// 响应
request.interceptors.response.use(
  (res) => {
    // console.log(res);

    // 摘取核心数据
    if (res.data.code === 1) {
      return res.data?.data
    }
    if(res.data.code === 401) {
      // 401 登录失效处理
      router.push('/login')
      return
    }
    // 处理业务失败
    ElMessage.error(res.data.msg || '服务异常')
    return Promise.reject(res.data?.msg)
  },
  (err) => {
    // 默认错误处理情况
    ElMessage.error(err.response?.data?.message || '服务异常')
    return Promise.reject(err)
  },
)

export { request }
